Displaying sort results on a mobile computing device

ABSTRACT

Technologies for displaying sort results on a computing device includes determining a plurality of sort criteria of the set of data items to be sorted and associating a visual property to each sort criteria. A sort priority of sort criteria may also be determined. The set of data items are sorted based on the sort criteria and sort priority. The sort result is displayed using the visual properties of identify the sorting order of each corresponding sort criteria. The visual properties may include, for example, the display location, size, color, animation, or other visual aspect of the data items.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.13/729,339, entitled “DISPLAYING SORT RESULTS ON A MOBILE COMPUTINGDEVICE,” which was filed on Dec. 28, 2012, now U.S. Pat. No. 9,679,083,issued Jun. 13, 2017.

BACKGROUND

Mobile computing devices are becoming ubiquitous tools for personal,business, and social uses. The portability of mobile computing devicesis increasing as the size of the devices decrease and processing powerincreases. In fact, many computing devices are sized to be hand-held bythe user to improve ease of use. Additionally, modern mobile computingdevices are equipped with increased processing power and data storagecapability to allow such devices to perform advanced processing.Further, many modern mobile computing devices are capable of connectingto various data networks, including the Internet, to retrieve andreceive data communications over such networks. As such, modern mobilecomputing devices are powerful, often personal, tools untethered to aparticular location.

To facilitate portability, many mobile computing devices includedisplays of limited size to thereby decrease the overall size of thedevice. However, the small display size of mobile computing devices maycreate difficulties for users in performing certain functions on themobile computing device. For example, the sorting of data items on arelatively small display can be cumbersome and difficult especially wheneach data item includes multiple properties. In such circumstances, theuser is often required to scroll or pan the viewport of the display toview the additional properties of the sorted data items to fullyunderstand the sort results. This inability to view multiple propertiesof the data items contemporaneously on the display (e.g., within theviewport of the display) is an even more significant concern whenmulti-criteria sorts are performed (i.e., the multiple properties of thedata items are sorted at the same time). In such cases, the user may beespecially interested in, not only the sorted order of the primaryproperty, but also the sorted order of other properties on which thesort was conducted.

BRIEF DESCRIPTION OF THE DRAWINGS

The concepts described herein are illustrated by way of example and notby way of limitation in the accompanying figures. For simplicity andclarity of illustration, elements illustrated in the figures are notnecessarily drawn to scale. Where considered appropriate, referencelabels have been repeated among the figures to indicate corresponding oranalogous elements.

FIG. 1 is a simplified block diagram of at least one embodiment of amobile computing device for displaying sort results;

FIG. 2 is a simplified block diagram of at least one embodiment of anenvironment of the mobile computing device of FIG. 1;

FIG. 3 is a simplified flow diagram of at least one embodiment of methodfor generating and displaying sort results on a display of the mobilecomputing device of FIGS. 1 and 2;

FIG. 4 is a simplified illustration of at least one embodiment of a sortresult generated by the method of FIG. 3 and displayed on the display ofthe mobile computing device of FIGS. 1 and 2;

FIG. 5 is a simplified illustration of at least one embodiment ofanother sort result generated by the method of FIG. 3 and displayed onthe display of the mobile computing device of FIGS. 1 and 2; and

FIG. 6 is a simplified illustration of at least one embodiment ofanother sort result generated by the method of FIG. 3 and displayed onthe display of the mobile computing device of FIGS. 1 and 2.

DETAILED DESCRIPTION OF THE DRAWINGS

While the concepts of the present disclosure are susceptible to variousmodifications and alternative forms, specific embodiments thereof havebeen shown by way of example in the drawings and will be describedherein in detail. It should be understood, however, that there is nointent to limit the concepts of the present disclosure to the particularforms disclosed, but on the contrary, the intention is to cover allmodifications, equivalents, and alternatives consistent with the presentdisclosure and the appended claims.

References in the specification to “one embodiment,” “an embodiment,”“an illustrative embodiment,” etc., indicate that the embodimentdescribed may include a particular feature, structure, orcharacteristic, but every embodiment may or may not necessarily includethat particular feature, structure, or characteristic. Moreover, suchphrases are not necessarily referring to the same embodiment. Further,when a particular feature, structure, or characteristic is described inconnection with an embodiment, it is submitted that it is within theknowledge of one skilled in the art to effect such feature, structure,or characteristic in connection with other embodiments whether or notexplicitly described.

The disclosed embodiments may be implemented, in some cases, inhardware, firmware, software, or any combination thereof. The disclosedembodiments may also be implemented as instructions carried by or storedon a transitory or non-transitory machine-readable (e.g.,computer-readable) storage medium, which may be read and executed by oneor more processors. A machine-readable storage medium may be embodied asany storage device, mechanism, or other physical structure for storingor transmitting information in a form readable by a machine (e.g., avolatile or non-volatile memory, a media disc, or other media device).

In the drawings, some structural or method features may be shown inspecific arrangements and/or orderings. However, it should beappreciated that such specific arrangements and/or orderings may not berequired. Rather, in some embodiments, such features may be arranged ina different manner and/or order than shown in the illustrative figures.Additionally, the inclusion of a structural or method feature in aparticular figure is not meant to imply that such feature is required inall embodiments and, in some embodiments, may not be included or may becombined with other features.

Referring now to FIG. 1, in one embodiment, a mobile computing device100 is configured to sort a set of data items using multiple sortcriteria and display the sorting results on a display 110 of the device100 using a different visual property associated with each sort criteriato identify the sorting order of the corresponding sort criteria. Anyproperty of the data items that is capable of comparison between eachother may be used as individual sort criteria. Each sort may includeone, two, or more sort criteria on which the sort is based. Inembodiments in which multiple sort criteria are used, a sort priority ofthe determined sort criteria may be used to perform the sort. Theresulting sort order of each sort criteria is illustrated on the displayby modifying a corresponding visual property of the displayed data itemsfor each sort criteria. Such visual properties may include, but are notlimited to, the position of the sorted data item; the length, width, oroverall size of the sorted data item; the background color of the sorteddata item; the text attribute of the sorted data item; a graphicaleffect of the sorted data item; an animation effect of the sorted item;and/or other visual property of each sorted data item. In this way, amultiple-sort-criteria sort result may be displayed to the user on arelatively compact display space allowing the user to quickly andefficiently discriminate between the sorting order of multiple criteriawhile reducing the need to scroll, pan, and/or zoom the viewport of thedisplay 110 to view each sort criteria of interest.

The mobile computing device 100 may be embodied as any type of mobilecomputing device capable of performing the functions described herein.For example, in some embodiments, the mobile computing device 100 may beembodied as a “smart” phone, a tablet computer, a mobile media device,and a game console, a mobile internet device (MID), a personal digitalassistant, a laptop computer, a mobile appliance device, or other mobilecomputing device. As shown in FIG. 1, the illustrative mobile computingdevice 100 includes a processor 102, a memory 106, an input/outputsubsystem 108, and a display 110. Of course, the mobile computing device100 may include other or additional components, such as those commonlyfound in a mobile computing device and/or communication device (e.g.,various input/output devices), in other embodiments. Additionally, insome embodiments, one or more of the illustrative components may beincorporated in, or otherwise from a portion of, another component. Forexample, the memory 106, or portions thereof, may be incorporated in theprocessor 102 in some embodiments.

The processor 102 may be embodied as any type of processor capable ofperforming the functions described herein. For example, the processormay be embodied as a single or multi-core processor(s) having one ormore processor cores 104, a digital signal processor, a microcontroller,or other processor or processing/controlling circuit. Similarly, thememory 106 may be embodied as any type of volatile or non-volatilememory or data storage currently known or developed in the future andcapable of performing the functions described herein. In operation, thememory 106 may store various data and software used during operation ofthe mobile computing device 100 such as operating systems, applications,programs, libraries, and drivers. The memory 106 is communicativelycoupled to the processor 102 via the I/O subsystem 108, which may beembodied as circuitry and/or components to facilitate input/outputoperations with the processor 102, the memory 106, and other componentsof the mobile computing device 100. For example, the I/O subsystem 108may be embodied as, or otherwise include, memory controller hubs,input/output control hubs, firmware devices, communication links (i.e.,point-to-point links, bus links, wires, cables, light guides, printedcircuit board traces, etc.) and/or other components and subsystems tofacilitate the input/output operations. In some embodiments, the I/Osubsystem 108 may form a portion of a system-on-a-chip (SoC) and beincorporated, along with the processor 102, the memory 106, and othercomponents of the mobile computing device 100, on a single integratedcircuit chip.

The display 110 of the mobile computing device 100 may be embodied asany type of display on which information may be displayed to a user ofthe mobile computing device 100. For example, the display 110 may beembodied as, or otherwise use, any suitable display technologyincluding, for example, a liquid crystal display (LCD), a light emittingdiode (LED) display, a cathode ray tube (CRT) display, a plasma display,and/or other display usable in a mobile computing device. Additionally,in some embodiments, the display 110 may be embodied as a touchscreendisplay and include an associated touchscreen sensor (not shown) toreceive tactile input and data entry from the user.

The mobile computing device 100 may also include a data storage 112. Thedata storage 112 may be embodied as any type of device or devicesconfigured for the short-term or long-term storage of data such as, forexample, memory devices and circuits, memory cards, hard disk drives,solid-state drives, or other data storage devices. In the illustrativeembodiment, the mobile computing device 100 may store the data items tobe sorted and various policy and reference databases in the data storage112 as discussed in more detail below in regard to FIG. 2.

In some embodiments, the mobile computing device 100 may also include acommunication circuit 122. The communication circuit 122 may be embodiedas one or more devices and/or circuitry for enabling communications withone or more remote devices over a network. The communication circuit 122may be configured to use any suitable communication protocol tocommunicate with remote devices over such network including, forexample, cellular communication protocols, wireless data communicationprotocols, and/or wired data communication protocols.

Additionally, in some embodiments, the mobile computing device 100 mayfurther include one or more peripheral devices 124. Such peripheraldevices 124 may include any type of peripheral device commonly found ina mobile computing device such as speakers, a hardware keyboard,input/output devices, peripheral communication devices, antennas, and/orother peripheral devices.

Referring now to FIG. 2, in one embodiment, the mobile computing device100 establishes an environment 200 during operation. The illustrativeenvironment 200 includes a data sorting module 202 and a display module204, each of which may be embodied as software, firmware, hardware, or acombination thereof. During use, the data sorting module 202 isconfigured to sort a selection of data items 206, which may be stored inthe data storage 112 and/or memory 106. The data items 206 may beembodied as any type of data items having one or more properties thatmay be compared to each other and used as individual sort criteria tosort the data items 206. The data items 206 may be generated on themobile computing device 100 (e.g., spreadsheet data) or retrieved from aremote source via the communication circuit 122.

As discussed in more detail below, the data sorting module 202 mayutilize any sort criteria to sort the data items 206. In someembodiments, the user may select, or otherwise define, the sort criteriaof the data items 206 to be used in the sort. Additionally, the user mayselect, or otherwise define, the relative sort priority between theselected sort criteria (i.e., which sort criteria should be sortedfirst, second, etc.). Alternatively, in some embodiments, the datasorting module 202 may access a sort criteria and priority policy 208,which may be stored in the data storage 112, to infer which propertiesof the data items 206 should be used as sort criteria and determine therelative sort priority of the inferred sort criteria. As such, the sortcriteria and priority policy 208 may be embodied as a set of rules fromwhich the data sorting module 202 may infer the sort criteria and sortpriority of the data items 206 with minimal or no intervention by theuser. Such rules may be historical-based rules that are generated basedon the user's historical selection of sort criteria and sort priority,may be pre-defined by the user, or generated and obtained from a remotesource such as a third party (e.g., a third-party from which the dataitems 206 were obtained). As such, each rule of the sort criteria andpriority policy 208 may be data item-specific, user-specific,application-specific, and/or global.

As discussed above, the data sorting module 202 associates a visualproperty of the data items 206 with each selected sort criteria. In someembodiments, the user may select, or otherwise define, each visualproperty of the data items 206 to be associated with each selected orinferred sort criteria. Alternatively, in some embodiments, the datasorting module 202 may access a sort criteria-to-visual propertyreference database 210, which may be stored locally on the data storage112 or memory 106 or stored remotely on a remote server or othercomputing device. Similar to the sort criteria and priority policy 208,the sort criteria-to-visual property reference database 210 may beembodied as a set of rules from which the data sorting module 202 mayinfer or match visual properties of the data items to each selected orinferred sort criteria with minimal or no interaction from the user. Thesort criteria-to-visual property reference database 210 rules may defineeach visual property based on any aspect of the selected/inferred sortcriteria such as the type of criteria, the priority order of thecriteria, the nature or content of the data items, the context of thedata and/or data sort, and/or other aspects of the data items 206.Similar to the rules of the sort criteria and priority policy 208, therules of the sort criteria-to-visual property reference database 210 maybe embodied as historical-based rules that are generated based on theuser's historical selection of visual properties, may be otherwisepre-defined by the user, or generated and obtained from a remote sourcesuch as a third party (e.g., a third-party from which the data items 206were obtained). As such, each rule of the sort criteria-to-visualproperty reference database 210 may be data item-specific,user-specific, application-specific, and/or global. Additionally, suchrules may be defined at design time, compile time, or at runtime by theuser, other components of the mobile computing, and/or by third parties.

As discussed above, each defined visual property may be embodied as anytype of visual property of the data items 206. For example, the visualproperties may include, but are not limited to, the position on thedisplay 110 of the sorted data item, the length of the sorted data item,the width of the sorted data item, the overall size of the sorted dataitem, a background color of the sorted data item, a text attribute ofthe sorted data item (e.g., color, size, weight, font style, etc.), agraphical effect of the sorted data item (e.g., a tonal change,transparency, layering effect, etc.), an animation effect of the sorteddata item (e.g., glow, fade, shadow, pulse, vibrate, etc.), and/or othervisual property of each sorted data item.

The display module 204 is configured to display the sorted data items206 in a sort order defined by the sort results based on the sortcriteria and the associated sort priority of each sort criteria. To doso, the display module 204 utilizes the visual property associated witheach sort criteria to identify the sort order of that particular sortcriteria. For example, in one embodiment, the data items 206 may beembodied as a list of vehicles that the user desires to compare based onvehicle cost and gas mileage of each vehicle. In such an embodiment, theuser may define the vehicle cost as the sort criteria having the highestpriority level and the gas mileage as the sort criteria having thesecond highest priority level. Additionally, the user may define avisual property for each sort criteria such as, for example, displayposition for the vehicle cost and text color for the gas mileage. If so,the display module 204 will display the sorted data items in a sortedorder in which the position of each data item 206 (i.e., each vehicle)on the display 110 is determined by the cost of the vehicle and thecolor of the data item 206 is determined by the gas mileage of thevehicle. For example, a low priced, high efficiency vehicle may belisted first (assuming ascending order) and use a green text color,while a high priced, low efficiency vehicle may be displayed lower inthe sorted results and use a grey, black, or red text color (as chosenby the user or determined based on the sort criteria-to-visual propertyreference database 210). In some embodiments, the display module 204 maydisplay each data item 206 as a data tile (e.g., a data block or othergeometric shape) in which information related to the particular dataitem 206 may be displayed (e.g., the name of the data item, reviews ofthe data item, other sort criteria, links to online stores or websites,etc.).

Referring now to FIG. 3, in use, the mobile computing device 100 mayexecute a method 300 for generating and displaying sort results of adata item sort on the display 110 of the device 100. The method 300begins with block 302 in which the mobile computing device 100determines whether the user desires to perform a sort of the data items206. If so, the method 300 advances to block 304 in which the mobilecomputing device 100 determines whether the user desires to specificallydefine one or more sort criteria of the data items 206 to be sorted. Asdiscussed above, each sort criteria corresponds to a property of thedata items 206 that may be compared to each other to perform the sort.One, two, or more sort criteria may be defined for each sort. If theuser desires to manually select or define the sort criteria, the method300 advances to block 306 in which the user may select or define whichproperties of the data items 206 are to be used as sort criteria and therelative sort priority of each defined sort criteria. However, if theuser does not desire to manually select the sort criteria and priorityin block 304, the method 300 advances to block 308 in which the datasorting module 202 retrieves the sort criteria and priority policy 208from the data storage 112 and/or memory 106. The data sorting module 202utilizes the sort criteria and priority policy 208 to infer the sortcriteria and relative sort priority of each inferred sort criteria ofthe data items 206. To do so, the data sorting module 202 may comparethe data items 206, or aspects/properties of the data items 206, to therules defined in the sort criteria and priority policy 208. As discussedabove, such rules may be based on the historical user interaction withthe data items 206 or other sorts, may be provided by a third party orobtained in connection with the data items 206, may be pre-defined bythe user, and/or may be embodied as other rules usable to determine thesort criteria and sort priority of the sort criteria for the data items206.

After the sort criteria and relative sort priority of the data items 206have been determined in either blocks 306 or 308, the method 300advances to block 310 in which the mobile computing device 100determines whether the user desires to specifically define the visualproperties of the data items 206 that are to be correlated to the sortcriteria. If so, the method advances to block 312 in which the user mayselect or define a visual property (e.g., position, text color,background color, graphical effect, animation, etc.) of the data items206 for each determined sort criteria to be sorted. In some embodiments,the data sorting module 202 may provide a graphical user interface tothe user on the display 110 to facilitate the user's selection of visualproperties (which may be predefined as a global set of available visualproperties or a subset of visual properties determined based on theuser, application, content of the data items 206, or other criteria).

If, however, the user does not desire to manually define the visualproperties to be associated with the determined sort criteria in block310, the method 300 advances to block 314 in which the data sortingmodule 202 retrieves the sort criteria-to-visual property referencedatabase 210 from the data storage 112 and/or memory 106. The datasorting module 202 utilizes the reference database 210 to infer a visualproperty for each defined sort criteria of the data items 206. To do so,the data sorting module 202 may compare the defined sort criteria and/ordata items to the rules defined in the reference database 210. Asdiscussed above, the sort criteria-to-visual property reference database210 rules may define each visual property based on any one or moreaspects of the defined sort criteria, such as the type of criteria, thepriority order of the criteria, and/or other aspects of each sortcriteria. Additionally or alternatively, the rules may define eachvisual property based on one or more aspects of the data items 206, suchas the nature or content of the data items 206, the context of the dataitems 206, the context of data sort, and/or other aspects of the dataitems 206. Further, the rules may define each visual property based onother data related to the sort such as the user performing the sort, anyapplication related to the sort or data items 206, and/or othercriteria.

After the visual properties have been defined for each sort criteria inblocks 312 or 314, the method 300 advances to block 316 in which thedata sorting module 202 performs the sort of the data items 206 usingthe defined sort criteria and sort priority. As discussed above, thesort priority defines the order of priority of each sort criteria (e.g.,which sort criteria to sort first). The data sorting module 202 mayutilize any suitable sorting algorithm to sort the data items as afunction of the sort criteria and relative sort priority of each sortcriteria. After the data sorting module 202 has completed the sortingprocedure, the display module 204 displays the sort result on thedisplay 110 in block 318. To do so, as discussed above, the displaymodule 204 displays each data item 206 on the display 110 according tothe sort result of the data sorting module 202 utilizing the visualproperty associated with each sort criteria to identify the sort orderof each associated sort criteria. In some embodiments, the displaymodule 204 displays each sorted data item 206 as a data item tile, whichmay have any type of geometric shape (e.g., rectangular tile, ellipticaltile, circular tile, irregular tile, or other shape). Depending on thesize of the data item tile, the display module 204 may displayadditional information associated with each data item on the respectivedata item tile. In this way, a multiple-sort-criteria sort result may bedisplayed to the user in a condensed informational format that allowsthe user to quickly view and comprehend the sort order of the multiplesort criteria.

After the display module 204 has displayed the sort results on thedisplay 110 in block 318, the method advances to block 320 in which themobile computing device 100 determines whether the user has manipulatedone or more of the sorted data items 206. For example, the user mayexpand or select a data item tile or otherwise interact with one or moresorted data items 206. If not, the method 300 loops back to block 302 inwhich the mobile computing device 100 determines whether the userdesires to perform another sort. However, if the user has manipulatedone or more of the sorted data items 206 in block 320, the method 300advances to block 322 in which additional information is displayed onthe manipulated data item tile to provide further information regardingthe particular data item and/or controls usable by the user to furthermanipulate the particular data item or sort. Subsequently, the method300 loops back to block 320 to determine whether the user hasmanipulated another sorted data item 206.

Referring now to FIGS. 4-6, several embodiments of sort results of themethod 300 generated on the mobile computing device 100 are shown. Forexample, in the illustrative embodiment of FIG. 4, a data set ofrecommended software applications 400 has been sorted according to twosort criteria: the number of downloads for each recommended softwareapplication and the average rating of each recommended softwareapplication. Each sorted data item is displayed as a corresponding dataitem tile 402, 404, 406, 408, 410, and 412. The first sort criteria(i.e., the number of downloads) has been assigned the visual property oflocation on the display 110. As such, the recommended applications arelisted in descending order according to their associated number ofdownloads (i.e., the data item 402 has the highest number of downloads).The second sort criteria (i.e., the average user rating) has beenassigned the visual property of width of the data item tile (e.g., inaddition to an assigned minimum width). As such, the data item tileshaving larger widths indicate of a higher average rating for theassociated recommended application (e.g., the data item 402 has thehighest average rating followed by the data item 404). Each data itemtile includes the name of the associated software application as well asadditional information such as the name of the developer of theassociated software application. Additionally, for those data item tileshave larger widths and surface areas, additional information including,for example, the top user review, is displayed on the data item tile(e.g., see data item tiles 402, 404). In this way, the user of themobile computing device can quickly review a sorted, multi-criteria sortof the recommended applications based on the number of downloads andaverage user rating.

In the illustrative embodiment of FIG. 5, a data set of friends 500located nearby the user of the mobile computing device 100 has beensorted according to two sort criteria: the distance away from the userand the length of time the friend has been at his/her current location.Each sorted data item is displayed as a corresponding data item tile502, 504, 506, 508, 510, 512, 514, 516, and 518. The first sort criteria(i.e., the distance away from the user) has been assigned the visualproperty of location on the display 110. As such, the friends 500located nearby the user are listed in ascending order according to theirassociated distance from the user (i.e., the friend associated with dataitem 502 is closest to the user). The second sort criteria (i.e., thelength of time the friend has remained at his/her current location) hasbeen assigned the visual property of background color of the data itemtile (as indicated in the FIG. 5 via background hashing). As such, eachdata item tile has a different color according to how long thecorresponding friend has remained at his/her current location. Forexample, darker tones may be used to denote a short duration, whilelighter tones may denote a longer duration (e.g., the friend “Tori”associated with data item 502 has stayed at her current location for thelongest duration). In some embodiments, each visual property mayrepresent a window of values, rather than discrete values. For example,the friends “Gregory” and “Matthew” are indicated as staying at theirrespective locations for similar durations, which may be within a windowof 5, 10, 15, or more minutes of each other. Again, each data item tileincludes the name of the associated friend 500 as well as the estimateddistance to the respective friend. In this way, the user of the mobilecomputing device 100 can quickly review a sorted, multi-criteria sort ofhis/her friends based on the distance to the friend and how long thefriend has remained at their current location.

In the illustrative embodiment of FIG. 6, a data set of auction items600 that were generated by a search query has been sorted according totwo sort criteria: price and expiration time. Each sorted data item isdisplayed as a corresponding data item tile 602, 604, 606, 608, 610,612, 614, and 616. The first sort criteria (i.e., price) has beenassigned the visual property of location on the display 110. As such,the auction items 600 are listed in descending order according to theirassociated price (i.e., the data item 602 is the lowest cost auctionitem). The second sort criteria (i.e., expiration time) has beenassigned the visual property of glowing animation. As such any itemsthat have reached a threshold of expiration time (i.e., the auction isabout to expire) begin to glow (e.g., data item 606 is about to expireand, as such, is shown with a glow animation as indicated by the hashedboundary lines in FIG. 6). The intensity or rate of the glow animationmay increase as the individual data item gets closer to expiration.Again, each data item tile includes the name of the associated auctionitem 600 as well as the price of the auction item 600. In this way, theuser of the mobile computing device 100 can quickly review a sorted,multi-criteria sort of desired auction items 600 based on price andauction expiration.

Although the technologies described above have been presented in thecontext of a “mobile” computing device 100, it should be appreciatedthat the disclosed technologies may be incorporated in a stationarycomputing device. That is, in some embodiments, the computing device 100may be embodied as a stationary or non-mobile computing device such as adesktop computer, an enterprise-level computer, a server, a networkappliance such as a “smart” television,” or other mobile or non-mobilecomputing device.

EXAMPLES

Illustrative examples of the devices, systems, and methods disclosedherein are provided below. An embodiment of the devices, systems, andmethods may include any one or more, and any combination of, theexamples described below.

Example 1 includes a computing device for displaying sort results on adisplay. The computing device comprises a data sorting module to (i)determine a plurality of sort criteria of a set of data items to besorted, (ii) associate a different visual property for each determinedsort criteria, (iii) and sort the set of data items as a function of theplurality of sort criteria to generate a sort result having a sortingorder of the set of data items; and a display module to display the sortresult on the display as a function of the plurality of sort criteriausing the visual property associated with each sort criteria to identifythe sorting order of corresponding sort criteria.

Example 2 includes the subject matter of Example 1, and wherein the datasorting module is to further determine a sort priority for each of theplurality of sort criteria relative to each other, and sort the set ofdata items as a function of the (i) plurality of sort criteria and the(ii) sort priority for each of the plurality of sort criteria togenerate a sort result having a sorting order of the set of data items.

Example 3 includes the subject matter of any of Examples 1 and 2, andwherein the data sorting module is to determine the plurality of sortcriteria as a function of a user selection of the plurality of sortcriteria.

Example 4 includes the subject matter of any of Examples 1-3, andwherein the data sorting module is to retrieve a pre-defined selectionof the plurality of sort criteria from a memory of the computing deviceand determine the plurality of sort criteria as a function of thepre-defined selection.

Example 5 includes the subject matter of any of Examples 1-4, andwherein the data sorting module is to retrieve a pre-defined selectionof the plurality of sort criteria as a function of the type of dataitems to be sorted.

Example 6 includes the subject matter of any of Examples 1-5, andwherein the display module is to display each data item of the sortresult as a data item tile, and the different visual property for eachdetermined sort criteria comprises one of: a position on a displayscreen of the computing device of the data item tile, a width of thedata item tile, a height of the data item tile, a background color ofthe data item tile, a text attribute of the data item tile, a graphicaleffect of the data item tile, and an animation effect of the data itemtile.

Example 7 includes the subject matter of any of Examples 1-6, andwherein the data sorting module is to receive a user selection of eachdifferent visual property to be associated with each determined sortcriteria.

Example 8 includes the subject matter of any of Examples 1-7, andwherein the data sorting module is to access a reference database thatcorrelates sort criteria to visual properties, and determine eachdifferent visual property by comparing each sort criteria to thereference data base.

Example 9 includes the subject matter of any of Examples 1-8, andwherein the reference database is stored on a server remote from andaccessible to the computing device over a network.

Example 10 includes the subject matter of any of Examples 1-9, andwherein the display module is to modify each different visual propertyof each sorted data item as a function of the sort order of thecorresponding soft criteria.

Example 11 includes the subject matter of any of Examples 1-10, andwherein the display module is to detect a user's manipulation of a dataitem tile displayed on a display of the computing device, the data itemtile corresponding to one of the sorted data items of the set of dataitems; and display additional information or controls in the data itemtile in response to the detected manipulation of the data item tile.

Example 12 includes one or more machine readable storage mediacomprising a plurality of instructions stored thereon that in responseto being executed result in a computing device determining at least afirst sort criteria and a second sort criteria of a set of data items tobe sorted; associating a first visual property of the set of data itemswith the first sort criteria and a second visual property of the set ofdata items with the second sort criteria; determining a sort priorityfor the first sort criteria and the second sort criteria relative toeach other; sorting the set of data items as a function of (i) the firstand second sort criteria and (ii) the sort priority of the first andsecond sort criteria to generate a sort result having a sorting order ofthe set of data items; and displaying the sort result on the computingdevice using the first visual property to identify the sorting order ofthe first sort criteria and the second visual property to identify thesorting order of the second sort criteria.

Example 13 includes the subject matter of Example 12, and whereindetermining the first and second sort criteria comprises receiving, onthe computing device, a user selection of the first and second sortcriteria of the set of data items to be sorted.

Example 14 includes the subject matter of any of Examples 12 and 13, andwherein determining the first and second sort criteria comprisesretrieving a pre-defined selection of the first and second sort criteriaof the set of data items from a memory of the computing device.

Example 15 includes the subject matter of any of Examples 12-14, andwherein retrieving the pre-defined selection comprises retrieving apre-defined selection of the first and second sort criteria of the setof data items from a memory of the computing device as a function of thetype of data items to be sorted.

Example 16 includes the subject matter of any of Examples 12-15, andwherein each data item is displayed on the display of the computingdevice as a data item tile, and associating the first and second visualproperties comprises defining each of a first visual property and asecond visual property, different from the first visual property, ofeach data item tile as one of: a position on a display screen of thecomputing device of the data item tile, a width of the data item tile, aheight of the data item tile, a background color of the data item tile,a text attribute of the data item tile, a graphical effect of the dataitem tile, and an animation effect of the data item tile.

Example 17 includes the subject matter of any of Examples 12-16, andwherein associating the first and second visual properties comprisesreceiving, on the computing device, a user selection of a first visualproperty to be associated with the first criteria and a second visualproperty to be associated with the second criteria.

Example 18 includes the subject matter of any of Examples 12-17, andwherein associating the first and second visual properties comprisesaccessing a reference database that correlates sort criteria to visualproperties, and determining the first and second visual property bycomparing the first and second sort criteria to the reference database.

Example 19 includes the subject matter of any of Examples 12-18, andwherein accessing the reference database comprises accessing a referencedatabase over a network.

Example 20 includes the subject matter of any of Examples 12-19, andwherein displaying the sort result comprises modifying the first visualproperty of each data item of the set of data items as a function of thesort order of the first sort criteria; and modifying the second visualproperty of each data item of the set of data items as a function of thesort order of the second sort criteria.

Example 21 includes the subject matter of any of Examples 12-20, andwherein the plurality of instructions further result in the computingdevice detecting a user's manipulation of a data item tile displayed ona display of the computing device, the data item tile corresponding toone of the sorted data items of the set of data items; and displayingadditional information or controls in the data item tile in response tothe detected manipulation of the data item tile.

Example 22 includes the subject matter of any of Examples 12-21, andwherein determining at least a first and second sort criteria comprisesdetermining a plurality of sort criteria of the set of data items to besorted; associating the first and second visual property comprisesassociating a separate visual property of the set of data items witheach determined sort criteria; sorting the set of data items comprisessorting the set of data items a function of the plurality of sortcriteria to generate a sort result having a sorting order of the set ofdata items; and displaying the sort result comprises displaying the sortresult using the associated visual properties to identify the sortingorder of the plurality of sort criteria.

Example 23 includes a method for displaying sort results on a computingdevice. The method comprises determining, on the computing device, atleast a first sort criteria and a second sort criteria of a set of dataitems to be sorted; associating, on the computing device, a first visualproperty of the set of data items with the first sort criteria and asecond visual property of the set of data items with the second sortcriteria; sorting the set of data items as a function of the first andsecond sort criteria to generate a sort result having a sorting order ofthe set of data items; and displaying the sort result on the computingdevice using the first visual property to identify the sorting order ofthe first sort criteria and the second visual property to identify thesorting order of the second sort criteria.

Example 24 includes the subject matter of Example 23, and whereindetermining the first and second sort criteria comprises receiving, onthe computing device, a user selection of the first and second sortcriteria of the set of data items to be sorted.

Example 25 includes the subject matter of any of Examples 23 and 24, andwherein determining the first and second sort criteria comprisesretrieving a pre-defined selection of the first and second sort criteriaof the set of data items from a memory of the computing device.

Example 26 includes the subject matter of any of Examples 23-25, andwherein retrieving the pre-defined selection comprises retrieving apre-defined selection of the first and second sort criteria of the setof data items from a memory of the computing device as a function of thetype of data items to be sorted.

Example 27 includes the subject matter of any of Examples 23-26, andwherein each data item is displayed on the display of the computingdevice as a data item tile, and associating the first and second visualproperties comprises defining each of a first visual property and asecond visual property, different from the first visual property, ofeach data item tile as one of: a position on a display screen of thecomputing device of the data item tile, a width of the data item tile, aheight of the data item tile, a background color of the data item tile,a text attribute of the data item tile, a graphical effect of the dataitem tile, and an animation effect of the data item tile.

Example 28 includes the subject matter of any of Examples 23-27, andwherein associating the first and second visual properties comprisesreceiving, on the computing device, a user selection of a first visualproperty to be associated with the first criteria and a second visualproperty to be associated with the second criteria.

Example 29 includes the subject matter of any of Examples 23-28, and,wherein associating the first and second visual properties comprisesaccessing a reference database that correlates sort criteria to visualproperties, and determining the first and second visual property bycomparing the first and second sort criteria to the reference database.

Example 30 includes the subject matter of any of Examples 23-29, andwherein accessing the reference database comprises accessing, using thecomputing device, a reference database over a network.

Example 31 includes the subject matter of any of Examples 23-30, andwherein displaying the sort result comprises modifying the first visualproperty of each data item of the set of data items as a function of thesort order of the first sort criteria; and modifying the second visualproperty of each data item of the set of data items as a function of thesort order of the second sort criteria.

Example 32 includes the subject matter of any of Examples 23-31, andfurther including determining a sort priority for the first sortcriteria and the second sort criteria relative to each other, andwherein sorting the set of data items comprises sorting the set of dataitems as a function of (i) the first and second sort criteria and (ii)the sort priority of the first and second sort criteria to generate asort result having a sorting order of the set of data items.

Example 33 includes the subject matter of any of Examples 23-32, andfurther including detecting a user's manipulation of a data item tiledisplayed on a display of the computing device, the data item tilecorresponding to one of the sorted data items of the set of data items;and displaying additional information or controls in the data item tilein response to the detected manipulation of the data item tile.

Example 34 includes the subject matter of any of Examples 23-33, andwherein determining at least a first and second sort criteria comprisesdetermining a plurality of sort criteria of the set of data items to besorted; associating the first and second visual property comprisesassociating a separate visual property of the set of data items witheach determined sort criteria; sorting the set of data items comprisessorting the set of data items a function of the plurality of sortcriteria to generate a sort result having a sorting order of the set ofdata items; and displaying the sort result comprises displaying the sortresult using the associated visual properties to identify the sortingorder of the plurality of sort criteria.

Example 35 includes a computing device comprising a processor; and amemory having stored therein a plurality of instructions that whenexecuted by the processor cause the computing device to perform themethod of any of Examples 23-34.

Example 36 includes one or more machine readable storage mediacomprising a plurality of instructions stored thereon that in responseto being executed result in a computing device performing the method ofany of Examples 23-24.

The invention claimed is:
 1. An apparatus comprising: at least oneprocessor; and at least one storage device including: a database toidentify an association between a first user and a second user, anassociation between the first user and a third user, and an associationbetween the first user and a fourth user; and machine readableinstructions which, when executed, cause the at least one processor to:access a first location of the first user, a second location of thesecond user, a third location of the third user, and a fourth locationof the fourth user; determine a first distance between the first userand the second user based on the first location and the second location;determine a second distance between the first user and the third userbased on the first location and the third location; determine a thirddistance between the first user and the fourth user based on the firstlocation and the fourth location; and cause display of at least onesorted list of the second, third, and fourth users based on a first sortcriterion corresponding to location and a second sort criterioncorresponding to distance, the at least one sorted list to include:representations of the second user and the third user as associated witha same location, the representations of the second user and the thirduser in a sorted order based on the first and second distances; andrepresentation of the fourth user as associated with the fourthlocation, the second, third and fourth distances associated with adifferent visual property than the same location and the fourthlocation.
 2. The apparatus of claim 1, wherein the at least oneprocessor is to determine a time associated with the locations of thesecond user, the third user, and the fourth user.
 3. The apparatus ofclaim 1, wherein the at least one processor is to cause display of anindication of the time associated with at least one of the locations ofthe second user, the third user, and the fourth user.
 4. The apparatusof claim 1, wherein the at least one processor is to sort the second,third and fourth users into the at least one sorted list based on thesecond, third and fourth locations, the second and third locations beingthe same location, the fourth location being different than the secondlocation and different than the third location.
 5. The apparatus ofclaim 1, wherein the at least one processor is to cause display of theat least one sorted list via a mobile device.
 6. The apparatus of claim1, wherein the different visual property includes at least one of a textsize, a text style, a color, a weight, or a font.
 7. The apparatus ofclaim 1, wherein the different visual property includes a differentposition of display on a graphical user interface.
 8. The apparatus ofclaim 1, wherein the apparatus is a server.
 9. At least one tangiblecomputer-readable storage medium comprising computer readableinstructions which, when executed, cause at least one processor to atleast: access a first location of a first user, a second location of asecond user, a third location of a third user, and a fourth location ofa fourth user, the first user having an association with the seconduser, an associated with the third user, and an association with thefourth user; determine a first distance between the first user and thesecond user based on the first location and the second location;determine a second distance between the first user and the third userbased on the first location and the third location; determine a thirddistance between the first user and the fourth user based on the firstlocation and the fourth location; and cause display of at least onesorted list of the second, third, and fourth users based on a first sortcriterion corresponding to location and a second sort criterioncorresponding to distance, the at least one sorted list to include:representations of the second user and the third user as associated witha same location, the representations of the second user and the thirduser in a sorted order based on the first and second distances; andrepresentation of the fourth user as associated with the fourthlocation, the second, third and fourth distances associated with adifferent visual property than the same location and the fourthlocation.
 10. The at least one tangible computer-readable storage mediumof claim 9, wherein the instructions, when executed, cause the at leastone processor to cause display of a time associated with the location ofthe second user, the third user, and the fourth user.
 11. The at leastone tangible computer-readable storage medium of claim 9, wherein theinstructions, when executed, cause the at least one processor to sortthe second, third and fourth users into the at least one sorted listbased on the second, third and fourth locations, the second and thirdlocations being the same location, the fourth location being differentthan the second location and different than the third location.
 12. Theat least one tangible computer-readable storage medium of claim 9,wherein the instructions, when executed, cause the at least oneprocessor to cause display of the at least one sorted list via a mobiledevice.
 13. The at least one tangible computer-readable storage mediumof claim 9, wherein the different visual property includes at least oneof a text size, a text style, a color, a weight, or a font.
 14. The atleast one tangible computer-readable storage medium of claim 9, whereinthe different visual property includes a different position of displayon a graphical user interface.
 15. A method comprising: accessing, byexecuting an instruction with at least one processor, a first locationof a first user, a second location of a second user, a third location ofa third user, and a fourth location of a fourth user; determining, byexecuting an instruction with the at least one processor, a firstdistance between the first user and the second user based on the firstlocation and the second location; determining, by executing aninstruction with the at least one processor, a second distance betweenthe first user and the third user based on the first location and thethird location; determining, by executing an instruction with the atleast one processor, a third distance between the first user and thefourth user based on the first location and the fourth location; andcausing display of at least one sorted list of the second, third, andfourth users based on a first sort criterion corresponding to locationand a second sort criterion corresponding to distance, the at least onesorted list to include: representations of the second user and the thirduser as associated with a same location, the representations of thesecond user and the third user in a sorted order based on the first andsecond distances; and representation of the fourth user as associatedwith the fourth location, the second, third and fourth distancesassociated with a different visual property than the same location andthe fourth location.
 16. The method of claim 15, further includingcausing display of a time associated with the location of the seconduser, the third user, and the fourth user.
 17. The method of claim 15,further including sorting the second, third and fourth users into the atleast one sorted list based on the second, third and fourth locations,the second and third locations being the same location, the fourthlocation being different than the second location and different than thethird location.
 18. The method of claim 15, wherein the causing displayof the at least one sorted list occurs via a mobile device.
 19. Themethod of claim 15, wherein the different visual property includes atleast one of a text size, a text style, a color, a weight, a font, or adifferent position for display on a graphical user interface.
 20. Asystem comprising: means for storing an association between a first userand a second user, an association between the first user and a thirduser, and an association between the first user and a fourth user; meansfor processing a first location of the first user, a second location ofthe second user, a third location of the third user, and a fourthlocation of the fourth user to: determine a first distance between thefirst user and the second user based on the first location and thesecond location; determine a second distance between the first user andthe third user based on the first location and the third location; anddetermine a third distance between the first user and the fourth userbased on the first location and the fourth location; and means fordisplaying at least one sorted list of the second, third, and fourthusers based on a first sort criterion corresponding to location and asecond sort criterion corresponding to distance, the at least one sortedlist including: representations of the second user and the third user asassociated with the same location, the representations of the seconduser and the third user in a sorted order based on the first and seconddistances; and a representation of the fourth user as associated withthe fourth location, the representations of the second, third and fourthdistances associated with a different visual property than the samelocation and the fourth location.